var gulp = require("gulp");//定义gulp插槽
var gulp_min_css = require("gulp-minify-css");//定义压缩css的插件
var gulp_sass = require('gulp-sass');//定义sass转换css的插件
var gulp_plumber = require("gulp-plumber");//报错的时候取消终止
var gulp_pngmin = require("gulp-pngmin");//压缩图片的插件
var gulp_tinypng = require("gulp-tinypng");//压缩图片的插件
var gulp_uglify = require("gulp-uglify");//定义压缩js的插件
var browser_sync = require("browser-sync").create();//定义自动刷新浏览器的插件
var gulp_autoprefixer = require("gulp-autoprefixer");//自定生成前缀
var gulp_copy = require("gulp-copy");//定义copy的插件

//定义任务

//scss转换css
gulp.task('scss',function(){
	gulp.src(['src/scss/**/*.scss','!src/scss/**/reset.scss'])
	.pipe(gulp_plumber())
	.pipe(gulp_sass())
	.pipe(gulp.dest('src/css'));
})

//实时监听scss文件，并转化
gulp.task('watchcss',function(){
	gulp.watch(
		"./src/scss/**/*.scss",["scss"]
	)
})

//定义自动刷新浏览器任务
gulp.task('browser-sync', function(){
    browser_sync.init({
    	port:Math.floor(Math.random()*9999)+1000,

        server: {
            baseDir: "./src"
        }
    });
    
    	gulp.watch("src/scss/**/*.scss",["scss"]).on("change",browser_sync.reload)
	gulp.watch("src/*.html").on("change",browser_sync.reload);
});
//定义一键开发模式
gulp.task("dev",['browser-sync','scss']);

gulp.task("mincss",function(){
	//这个任务具体要做的事情就在这里写了
	gulp.src('src/scss/**/*.scss')  //source
	.pipe(gulp_plumber())
		.pipe(gulp_sass())
		

		.pipe(gulp_min_css({
			keepSpecialComments:'*'
			//保留所有特殊前缀，当你用autoprefixed生成的浏览器前缀，如果不加这个参数，有可能将会删除你的部分前缀
		}))
		.pipe(gulp_autoprefixer({
			browsers: ['last 2 versions', 'Android >= 4.0','iOS 7','last 3 Safari versions'],
			cascade: false
		}))
		.pipe(gulp.dest('./dist/css'));
})
//定义图片的压缩任务
gulp.task('minimg',function(){
	gulp.src('src/images/**/*.*')
		.pipe(gulp_plumber())
		.pipe(gulp_tinypng("1A5WA5sj250uYqOaCvOeZ0yQDR5L8JUe"))
		.pipe(gulp.dest('./dist/images'));
})
//定义js的压缩任务
gulp.task('minjs',function(){
	gulp.src('src/js/**/*.js')
		.pipe(gulp_uglify())
		.pipe(gulp.dest("./dist/js"));
})
//复制代码
gulp.task("copy", function() {
	gulp.src("src/fonts/**/*")
		.pipe(gulp_copy("./dist",{prefix:"1"}))
    gulp.src("src/*.html")
     	.pipe(gulp_copy("./dist",{prefix:"1"}));
    gulp.src("src/media/**/*.*")
     	.pipe(gulp_copy("./dist",{prefix:"1"}));
})



//定义一键生成模式(最终)
gulp.task("pro",["mincss","minjs","copy"]);
